package com.yl.entity.cdc;

import com.yl.constant.CdcOperation;
import com.yl.constant.CdcType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @author wlf
 * @since 2022/8/10
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MysqlCdcEntity<T> implements Serializable {

    private static final long serialVersionUID = -457566433778417297L;

    // 操作类型
    private CdcOperation cdcOperation;

    // 存储对象类型
    private CdcType type;

    // 添加存储对象的key，该key可能对应多个对象
    private String addKey;

    // 删除存储对象的key，该key唯一对应一个对象
    private String delKey;

    // 存储的对象
    private T entity;

    // 配置流元素加载信息-配置流元素更新时间戳，该时间和当前时间相差不超过2秒说明正在加载
    private long configTs;

    // 配置流元素加载信息-配置流元素加载个数统计
    private int configCount;
}
